package com.heiye.blog.ai.strategy.role;

import com.heiye.blog.ai.enums.RoleNameEnum;
import com.heiye.blog.ai.model.dto.AIChatRequest;
import com.heiye.blog.ai.model.dto.TTSRequest;
import com.heiye.blog.ai.model.vo.AIResponse;
import com.heiye.blog.ai.model.vo.AIRoleChatReqVO;
import com.heiye.blog.framework.common.response.Response;
import reactor.core.publisher.Flux;

/**
 * @author: heiye
 * @date: 2025/11/19 下午2:24
 * @version: v1.0.0
 * @description: 角色策略
 */
public interface RoleStrategy {
    /**
     * 获取角色名称枚举
     *
     * @return
     */
    RoleNameEnum getRoleNameEnum();

    /**
     * 处理流式响应
     *
     * @param aiChatRequest
     * @return
     */
    Flux<AIResponse> handleStreamResponse(AIChatRequest aiChatRequest);

    /**
     * 音声生成
     *
     * @param ttsRequest
     * @return
     */
    String soundGeneration(TTSRequest ttsRequest);
}
